package com.pany.kotlin

/*
*Author:zhang
*Date:2022/4/9
*第5天的课程
* when 关键字的使用, 相当于 java里的if else ,switch
*/
fun main(args: Array<String>) {
    println(myPrint("hello"))
    println(myPrint("hello word"))

    println(myPrint("------"))
    println("------")

    println(myPrint2("word"))
    println(myPrint2("----"))
    println("------")

    var a = 3

    var result = when (a) { // 如果 a = 1 的时候 打印出a 的值 把 10 赋值给 result
        1 -> {
            println(" a == 1")
            10
        }
        2 -> {
            println(" a == 2")
            20
        }
        3, 4, 5 -> { // 如果 a == 3 or 4 or 4 ...
            println(" a = 3 or a = 4 or 5")
            30
        }
        in 6..10 -> { // 如果 a == 6 到 10 之间  点点.. 就是C语言的运算符 重新
            println(" a is between 6 and 10")
            40
        }
        else -> {
            println(" a is  other value")
            50
        }

    }
    println("result == $result")


}

// 如果是 小写的字母 就转换为大写 如果 空就不转换
fun myPrint(str: String): String {

//    when (str) {  //  str == hello  打印出 大写
//        "hello" -> return "HELLO"
//        "word" -> return "WORD"
//        "hello word" -> return "HELLO WORD"
//        else -> return "ohter input"
//    }

    return when (str) {
        "hello" -> "HELLO"  // -> 有点像 java 的 正则表达式
        "word" -> "WORD"
        "hello word" -> "HELLO WORD"
        else -> "ohter input"
    }

}

// 和上面的一样, 语法糖的 简写法
fun myPrint2(str: String): String =
    when (str) {
        "hello" -> "HELLO"
        "word" -> "WORD"
        "hello word" -> "HELLO WORD"
        else -> "ohter input"
    }